const log4js = require("log4js");
const path = require("path");

function getCommonAppenders(pathSeg){
    return {
        type: "dateFile",
        filename: path.resolve(__dirname,"logs",pathSeg,"logging.log"),
        maxLogSize: 1024 * 1024, // 配置文件的最大字节数
        keepFileExt: true, // 保证.log后缀名
        daysToKeep: 3, // 保留几天
        // 文件写入的格式
        layout:{ 
            type: "pattern",
            pattern: "%c [%d{yyyy-MM-dd hh:mm:ss}] [%p]: %m%n",
        },
    }
}

log4js.configure({
    // 出口
    appenders:{
        // 出口名称
        sql:getCommonAppenders("sql"),
        // 默认出口
        default:{
            // 控制台输出
            type: "stdout", 
            filename: path.resolve(__dirname,"logs","default","logging.log"),
        },
        api:getCommonAppenders("api")
    },
    categories:{
        // 分类
        sql: {
            appenders: ["sql"], // 该分类使用sql的配置写入日志
            level: "all",
        },
        default:{
            appenders: ["default"],
            level: "all"
        },
        api: {
            appenders: ["api"], // 该分类使用sql的配置写入日志
            level: "all",
        }
    }
})

process.on("exit",()=>{
    log4js.shutdown()
})



exports.sqlLogger = log4js.getLogger("sql");
exports.defaultLogger = log4js.getLogger()
exports.apiLogger = log4js.getLogger("api")